package com.nettyBasic.n7_byteBuf;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
import io.netty.buffer.CompositeByteBuf;

import static com.nettyBasic.util.ByteBufLog.bufLog;

/**
 * @author： pang-yun
 * @date： 2021-09-14 11:15
 * 功能目的 ：用于   多个小 buf  使用  compositeBuffer()   组合成一个整体的 bytebuf
 *
 */

public class BufComposite {
    public static void main(String[] args) {
        ByteBuf buf1 = ByteBufAllocator.DEFAULT.buffer();
        ByteBuf buf2 = ByteBufAllocator.DEFAULT.buffer();

        buf1.writeBytes(new byte[]{1,2,3});
        buf2.writeBytes(new byte[]{4,5,6});

        //-----------原始方法：新建一个ByteBuf 然后将 buf1  buf2  写入   缺点是： 进行了两次复制-----------
      /*  ByteBuf buf = ByteBufAllocator.DEFAULT.buffer();
        buf.writeBytes(buf1).writeBytes(buf2);
        bufLog(buf);*/


        System.out.println("---------compositeBuffer 组合Buf-------------");
        //---------使用 compositeBuffer ----方法将几个小 buf 组合
        CompositeByteBuf compositeByteBuf = ByteBufAllocator.DEFAULT.compositeBuffer();
        compositeByteBuf.addComponents(true,buf1,buf2);
        bufLog(compositeByteBuf);
    }
}
